package com.qixiaobao.system.mapper;

import com.qixiaobao.system.domain.Charge;
import com.qixiaobao.system.domain.dto.CountDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description 费用  数据层
 * @Author yangxm
 * @Date 2025/6/24 14:45
 */
@Mapper
public interface ChargeMapper {


    /**
     * 根据id列表查询费用信息
     * @param chargeIdList
     * @return
     */
    List<Charge> selectChargeListByIdList(List<Long> chargeIdList);

    /**
     * 更新手续费结算状态
     * @param charge
     * @return
     */
    int updateHandlingFeeSettle(Charge charge);

    /**
     * @Description 根据费用id集合，查询费用结算状态
     * @Author yangxm
     * @Date 2025/6/30 15:54
     * @param chargeIdList
     * @return java.util.List<java.lang.String>
     */
    List<String> selectInsureFeeStatusListByIdList(List<Long> chargeIdList);

    /**
     * @Description 根据费用id集合，更新保费结算状态
     * @Author yangxm
     * @Date 2025/6/30 15:54
     * @param insureFeeSettle
     * @param chargeIdList
     * @return int
     */
    int updateInsureFeeSettleByIdList(@Param("insureFeeSettle")String insureFeeSettle, @Param("chargeIdList") List<Long> chargeIdList);

    /**
     * @Description 根据费用id集合，计算增员总人数、减员总人数、费用总计
     * @Author yangxm
     * @Date 2025/6/30 16:26
     * @param chargeIdList
     * @return com.qixiaobao.nondirect.invoice.domain.domain.dto.CountDTO
     */
    CountDTO selectChargeTotalByIdList(List<Long> chargeIdList);
}
